<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Source: data/Ajax.js</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Source: data/Ajax.js</h1>

    



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>/**
 * Created with IntelliJ IDEA.
 * User: seeker910
 * Date: 13-11-1
 * Time: 上午3:45
 * To change this template use File | Settings | File Templates.
 */

/**
 * @memberof Rsd.data
* */
Rsd.define('Rsd.data.Ajax', {
    extend:'Rsd.common.Object',
    xtype:'ajax',
    method: 'POST',
    url: null,
    /*
    * 'text/plain'
    * 'application/json; charset=utf-8'：以json字符串形式发送，格式如：userid=admin&amp;pwd=654321 需要服务端JSON.parse 还原JSON
    * 'application/x-www-form-urlencoded;charset=UTF-8'：以formData 格式发送，将表单内的数据转换为键值对，如:name=jack&amp;age=18
    * 'multipart/form-data':既可以上传文件等二进制数据，也可以上传表单键值对，只是最后会转化为一条信息,使用boundary=xxxxxxx分割
    * */
    contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
    /**
     * 预期服务器返回的数据类型:text,json
     */
    dataType: 'json',
    async: true,
    /**
     * 超时时间 毫秒
     */
    timeout:10000,
    username: '',
    password: '',
    /**
     * 是否是跨域请求
     * */
    crossDomain:true,
    /**
    * @description Ajax请求客户端标识，作用域：每个客户端, 添加到header中
    * */
    appId:'',
    /**
     * @description Ajax请求身份标识，作用域：每次请求, 添加到header中
     * * */
    token:'',
    /**
     * @description 授权码
     */
    authCode:'',
    /**
     * @description 返回数据json格式：web:首字母小写
     */
    jsonFormatter:null,
    /**
     * @constructs Rsd.data.Ajax
     * @classdesc Ajax请求类
     *
     * @property  {string} extend Rsd.common.Object
     * @property  {string} xtype ajax
     * @property {EventList} events 事件列表
     * @property {string} method GET，POST，PUT，DELETE
     * @property {string} url
     * @property {string} contentType application/x-www-form-urlencoded; charset=UTF-8
     * @property {string} dataType text，json
     * @property {boolean} async false
     * @property {string} username
     * @property {string} password
     * @property {string} appId
     * @property {string} token
     * @property {string} authCode
     *
     * @param {object} config 自定义配置项
     * */
    constructor: function Ajax (config) {
        config = config || {}; 
        this.apply(config);
    },
    /**
     * @description 事件注册
     * @public
     * @function
     * @memberof Rsd.data.Ajax
     * */
    on: function on(name, fn) {

        if (!name || name == '') {
            throw new Error('argument \'name\' is null.');
        }
        if (!fn || typeof (fn) != 'function') {
            throw new Error('argument \'fn\' is not a function object.');
        }
        //var me = this;

        this.events.add(this, name, fn);
    },
    /**
     * 
     */
    statechange:function statechange(xhr, evt)
    {
         /*
            xhr.readyState =（0，1，2，3，4）
            0：请求未初始化，还没有调用 open()。
            1：请求已经建立，但是还没有发送，还没有调用 send()。
            2：请求已发送，正在处理中（通常现在可以从响应中获取内容头）。
            3：请求在处理中；通常响应中已有部分数据可用了，没有全部完成。
            4：响应已完成；您可以获取并使用服务器的响应了。
        */
        Rsd.debug('statechange: ['+this.url+']' + ' | readyState:' + xhr.readyState +  ' | status:' + xhr.status);
    },
    /**
     * @public
     * @function
     * @memberof Rsd.data.Ajax
     * */
    complete:function complete(xhr, evt)
    {
        Rsd.debug('request complete:['+this.url+']');
    },

    /**
     * @public
     * @function
     * @memberof Rsd.data.Ajax
     * @param {XmlHttpRequest}  xhr 
     * @param {string} error
    * */
    error:function error(xhr, evt){
 
        Rsd.debug('request error:['+this.url+'] (' + (xhr.textStatus||xhr.status ||'') + ')');

        if(xhr.status == 404)
        {
            Rsd.showModalDialog(this.url,'服务器资源不存在(404)',400,500);
            return false;
        }

        if(xhr.status == 405)
        {
            Rsd.alert("Http请求不允许使用方法-"+this.method+"(405)","请检查该Ajax请求Method属性的设置\r\n" + this.url + "\r\n");
            return false;
        }

        console.error('Ajax请求失败('+(xhr.textStatus||xhr.status ||'unknown code')+'):',this.url,evt);
    },
    /**
     * @description 请求成功（status == 200） 处理方法，仅在 request方法未指定callback参数时有效
     * @public
     * @function
     * @memberof Rsd.data.Ajax
    * */
    success:function success(xhr) {
        Rsd.debug('request success:[' + this.url + ']');
    },
 
    /**
     * @public
     * @function
     * @memberof Rsd.data.Ajax
     * @description http请求,返回json结构数据
     * @param {object} data 作为Ajax对象请求时的参数中data属性（即远程方法的参数）
     * @param {string|function} callback 回调函数，callback方法和对象success方法只有一个有效，优先使用callback。callback需求每次请求时指定，success对象属于，不需要每次请求指定
    * */
    request:function request(data,callback) {

        var me = this;
        var _c = this.getAjaxConfig();  
        if(Rsd.isEmpty(_c.url))
        {
            console.error(_c);
            throw new Error('Ajax object config url value  is null.');
        }
 
        _c.data = data;
        _c.xhrFields={
            withCredentials:_c.crossDomain==false
        };
        //beforeSend 在xhr.open 之后 ，xhr.send 之前 执行
        _c.beforeSend = function(xhr)
        {   
            //框架可扩展部分 
            //xhr.withCredentials = true; //指示跨域时是否包含 cookies
            //setRequestHeader(name,value)添加http 头,必须在  xhr.open 之后 ， 在跨域请求时 {name}需要在后端设置允许跨域设置 
            if(_c.contentType &amp;&amp; _c.contentType != "multipart/form-data")
            {
                xhr.setRequestHeader("Content-type", _c.contentType);//不设置默认值，以免影响文件上传
            }
            
            xhr.setRequestHeader("accept-language",window.navigator.language); 
            if(_c.token)
            {
                xhr.setRequestHeader('token', _c.token);
            }
            if(_c.appId)
            {
                xhr.setRequestHeader('appId', _c.appId);
            }
            if(_c.authCode)
            {
                xhr.setRequestHeader('authorization', _c.authCode);
            }
            if(_c.jsonFormatter)
            {
                xhr.setRequestHeader('x-json-formatter', _c.jsonFormatter);
            }
            if(_c.accept)
            {
                xhr.setRequestHeader('accept', _c.accept);
            }
            //设置其他header信息
        }

        if(callback)
        {
            //callback 替换了  ajax对象中的success
            _c.success = function(response){
                
                var _data = response;
                if(Rsd.isFunction(callback))
                {
                    return callback.call(me,_data);
                }
                if(Rsd.isString(callback))
                {
                    return me.funApplyByIOC(callback,[_data]);
                }
                console.warn('callback is not functon',callback);
            };
        }

        if(Rsd.app &amp;&amp; Rsd.app.appType=='wxapp' &amp;&amp; wx &amp;&amp; wx.request)
        {
            return wx.request(_c);
        }
       
        var type = _c.method.toUpperCase();
        // 发送GET请求
        if(type == 'GET'){
            
            this.get();
            return;
        }

        // 发送 POST请求
        if(type == 'POST' || type == 'PUT' || type == 'PATCH' || type == 'DELETE'){

            this.post();
            return; 
        } 

        throw new Error("Unkown Method: " + _c.method);
         
    },
     
    /**
     * 
     */
    get:function get()
    {
        var _c = this.getAjaxConfig() ||{};
        var xhr = this.getXhr();
         // 用于清除缓存
         var random = Math.random();

        if(Rsd.isEmpty(_c.data)){
            xhr.open('GET', _c.url + (_c.url.endWith('.js') ?('?t='+ random):''), _c.async == undefined ? true : _c.async);
        } 
        else 
        {
            var _data = "";
            _data = this.toFormDataString(_c.data); 
            xhr.open('GET', _c.url + (_c.url.indexOf('?')&lt;0?'?':'&amp;') + _data, _c.async == undefined ? true : _c.async);
        }
         
        // 在 open 之后 ，处理 beforeSend 
        _c.beforeSend.call(xhr.ajax,xhr);
        //设置超时时间
        xhr.timeout = (_c.timeout == null || _c.timeout == undefined) ? 10000 : _c.timeout; 
        //注册异步处理事件
        if(_c.async == undefined||_c.async) { 
      
            //处理返回数据
            xhr.onreadystatechange = function(evt){
                
                /*
                    xhr.readyState =（0，1，2，3，4）
                    0：请求未初始化，还没有调用 open()。
                    1：请求已经建立，但是还没有发送，还没有调用 send()。
                    2：请求已发送，正在处理中（通常现在可以从响应中获取内容头）。
                    3：请求在处理中；通常响应中已有部分数据可用了，没有全部完成。
                    4：响应已完成；您可以获取并使用服务器的响应了。
                */
                if(xhr.readyState == 4){
                    //处理同步返回结果
                    _c.response.call(xhr.ajax,xhr); 
                   
                }

                //跟踪状态
                if (Rsd.isFunction(_c.statechange)) {
                    _c.statechange.call(xhr.ajax,xhr, evt);
                }
            }
        }
        try
        {
            xhr.send();
        }
        catch(err)
        {
            _c.error.call(xhr.ajax,xhr,err);
        }

        //处理返回
        if(_c.async == undefined||_c.async)
        {
            //异步 ,不做处理，通过onreadystatechange事件处理
        }
        else 
        {
            //处理同步返回结果
            _c.response.call(xhr.ajax,xhr); 
        }
    },
    /**
     * 
     * @param {*} data 
     * @param {*} callback 
     */
    post:function post()
    {
        var _c = this.getAjaxConfig() ||{};
        var xhr = this.getXhr();
        var type = _c.method;
        xhr.open(type, _c.url, _c.async == undefined ? true : _c.async);

        //在 open 之后 ，处理 beforeSend 
        _c.beforeSend(xhr);
        
       var _data = _c.data;
       //以json字符串形式发送，格式如：userid=admin&amp;pwd=654321， 需要服务端JSON.parse 还原JSON
       if(_c.contentType == "application/json")
       { 
           _data = this.toJsonString(_c.data);
       }
       //以formData 格式发送，将表单内的数据转换为键值对，如:name=jack&amp;age=18
       if(_c.contentType == "application/x-www-form-urlencoded")
       {
           if(!Rsd.isType(_c.data, FormData))
           {
               //form 提交 
               _data = this.toFormDataString(_c.data); 
           } 
       }
       
       //既可以上传文件等二进制数据，也可以上传表单键值对，最后会转化为一条信息
       if(_c.contentType == "multipart/form-data")
       {  
           if(!Rsd.isType(_c.data, FormData))
           { 
               _data = this.toMultipartFormData(_c.data);//json 对象转化为FormData
           } 
       }
       
       //设置超时时间
       xhr.timeout = (_c.timeout == null || _c.timeout == undefined) ? 10000 : _c.timeout; 
       //注册异步处理事件
       if(_c.async == undefined||_c.async) {
              
            //console.log( xhr.timeout);
            //处理返回数据
            xhr.onreadystatechange = function(evt){
 
                /*
                    xhr.readyState =（0，1，2，3，4）
                    0：请求未初始化，还没有调用 open()。
                    1：请求已经建立，但是还没有发送，还没有调用 send()。
                    2：请求已发送，正在处理中（通常现在可以从响应中获取内容头）。
                    3：请求在处理中；通常响应中已有部分数据可用了，没有全部完成。
                    4：响应已完成；您可以获取并使用服务器的响应了。
                */
               
                if(xhr.readyState == 4){
                    //处理同步返回结果
                    _c.response.call(xhr.ajax,xhr); 

                }
                //跟踪状态
                if (Rsd.isFunction(_c.statechange)) {
                    _c.statechange.call(xhr.ajax,xhr,evt);
                }

            }
        }

       try
       {
           xhr.send(_data);
       }
       catch(err)
       { 
           _c.error.call(xhr.ajax,xhr, err);
       }
       //处理返回
       if(_c.async == undefined||_c.async)
        {
            //异步 ,不做处理，通过onreadystatechange事件处理 
        }
        else 
        {
             //处理同步返回结果
            _c.response.call(xhr.ajax,xhr);
        } 
    },
   
    
    /**
     * 处理 返回结果
     * @param {*} xhr 
     * @returns 
     */
    response:function response(xhr)
    {
        var _c = this.getAjaxConfig() ||{};
        //返回结果
        var str = xhr.responseText;
        /*
        * xhr.status
        * 200——成功
        * 201——提示知道新文件的URL
        * 300——请求的资源可在多处得到
        * 301——删除请求数据
        * 404——没有发现文件、查询或URl
        * 500——服务器产生内部错误
        * */ 
        if(xhr.status == 200)
        {
            var data=str;
            if(_c.dataType == 'json')
            {
                try 
                {
                    data = Rsd.toJson(str);
                }
                catch (e) 
                { 
                }
            }
            
            if (Rsd.isFunction(_c.success))//指请求成功，未发生异常：404，timeout
            {
                _c.success.call(xhr.ajax,data);
            }

            return;
        }

        if(xhr.status >= 500) //服务端异常
        {

            if (Rsd.isFunction(_c.error)) {
                _c.error.call(xhr.ajax,xhr, e);
            }  
            return;
        }
        console.error(xhr.status,str);
    },
    /**
     * 
     * @returns 
     */
    getXhr:function getXhr()
    {
        var _c = this.getAjaxConfig() ||{type:'GET', url:'', data:null, success:null, failed:null};
        _c.method = _c.method||_c.type|| this.method ||'GET';

        // 创建ajax对象
        var xhr = null;
        if(window.XMLHttpRequest){
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject('Microsoft.XMLHTTP')
        }
        
        //可注册事件
        //     loadstart:在接收到响应数据的第一个字节时触发 
        // 　　progress:在接收响应期间持续不断地触发
        // 　　error:在请求发生错误时触发 
        // 　　abort:在因为调用abort()方法而终止连接时触发 
        // 　　load:在接收到完整的响应数据时触发 
        // 　　loadend:在通信完成或者触发error、abort或load事件后触发 
        // 　　timeout:超时发生时触发
        //     onreadystatechange
         
         xhr.ajax = this;
         //注册跟踪事件 对接外部事件注册
         xhr.addEventListener('loadstart', _c.handleEvent);
         xhr.addEventListener('load', _c.handleEvent);
         xhr.addEventListener('loadend', _c.handleEvent);
        
         xhr.addEventListener('error', _c.handleEvent);
         xhr.addEventListener('abort', _c.handleEvent);
         xhr.addEventListener('timeout', _c.handleEvent);
          //下载进度
         xhr.addEventListener('progress', _c.handleEvent);
 
         //注册跟踪上传事件  对接外部事件注册
         if(xhr.upload)
         {
            xhr.upload.ajax = this;
            //上传开始
            xhr.upload.addEventListener('loadstart', _c.handleUploadEvent);
            //上传成功
            xhr.upload.addEventListener('load', _c.handleUploadEvent);
            //上传已经停止
            xhr.upload.addEventListener('loadend', _c.handleUploadEvent); 
            //上传失败
            xhr.upload.addEventListener('error', _c.handleUploadEvent);
            //上传终止
            xhr.upload.addEventListener('abort', _c.handleUploadEvent);
            //由于预设时间到期，上传终止
            xhr.upload.addEventListener('timeout', _c.handleUploadEvent); 
            //上传进度
            xhr.upload.addEventListener("progress" , _c.handleUploadEvent , false); 
         } 
        // xhr.onabort  
        // xhr.onload 
        //
        // xhr.onloadstart 
        // xhr.onprogress 

        //在请求中注册
        // xhr.onreadystatechange  

        //完成
        xhr.onloadend = function(evt)
        {
            if (Rsd.isFunction(_c.complete))
            {
                _c.complete(xhr,xhr.ajax.url,evt);

            }else
            {
                console.error('complete',xhr.ajax.url,evt);
            }
        };
        //超时
        xhr.ontimeout = function (evt) {

            //框架可扩展部分 timeout
            if (Rsd.isFunction(_c.timeout))
            {
                _c.timeout(xhr,evt);

            }else
            {
                console.error('timeout',xhr.ajax.url,evt);
            }

        };
        //错误
        xhr.onerror = function (evt) {

            if (Rsd.isFunction(_c.error)) {

                _c.error(xhr, evt);

            } 
            else
            {
                console.error('error',xhr.ajax.url,evt);
            }
        };
 
        return xhr;
    },
    /**
     * @public
     * @function
     * @description 获取当前ajax的配置项
     * @memberof Rsd.data.Ajax
    * */
    getAjaxConfig:function getAjaxConfig() {
        if(this.__cache)
        {
            return this.__cache;
        }
        //当前对象的克隆版
        var _c = {};
        var _keys = [
            'appId',
            'token',
            'authCode',
            'jsonFormatter',
            'method',
            'url',
            'accept', 
            'contentType',
            'dataType',  
            'data',
            'async',
            'username',
            'password', 
            'statechange',
            'complete',
            'error',
            'success',
            'timeout',
            'response',
            'handleEvent',
            'handleUploadEvent'
        ];

        for(var i in _keys)
        {
            if(_keys.hasOwnProperty(i))
            {
                if(i == "data")
                {
                    _c[_keys[i]] = this[_keys[i]];
                    continue;
                }
                _c[_keys[i]] = Rsd.clone(this[_keys[i]]);
            }

        }
        if(!Rsd.isString(_c.url))
        {
            console.error('args url is not string value.');
            console.trace(_c);
            return _c;
        }
        /*
        if(this.key &amp;&amp; _c.url &amp;&amp; !_c.url.toLowerCase().startWith(Rsd.getRedjsHost().toLowerCase()))
        {
            _c.url = _c.url + (_c.url.indexOf('?')> 0? '&amp;':'?') + '___key=' + this.key;
        }
        */

        var _url = _c.url;
        if(_url.startWith('http://') || _url.startWith('https://')||_url.startWith('file://'))
        {}
        else
        {
            //只处理相对路径
            _url = (Rsd.app&amp;&amp;Rsd.app.jsAgentHost)?(Rsd.app.jsAgentHost+'?' + Rsd.utf8ToBase64(_url)):_url;
            _c.url = _url;
        }
        //console.log(_c);
        //缓存
        this.__cache = _c;
        return this.__cache;
    },
    /**
     * 重置config ,删除缓存
     */
    resetAjaxConfig:function resetAjaxConfig()
    {
        delete this["__cache"];
    },
    /**
     * @decription 对接所有请求（不包括上传事件）事件，使用时通过on(name,fn)注册方式 各事件响应
     * @param {*} evt 
     */
    handleEvent:function handleEvent(evt)
    {
        var me = this.ajax;
        me.events.fire(me,evt.type,[evt]);
        if(Rsd.isDebug)
        {
            console.debug('['+evt.type+']' + evt.currentTarget.responseURL,evt);
        }
        
    },
    /**
     * @decription 对接所有上传事件，使用时通过on(name,fn)注册方式 各事件响应 ，name为'upload'+事件名
     * @param {*} evt 
     */
    handleUploadEvent:function handleUploadEvent(evt)
     {
        var me = this.ajax;
        me.events.fire(me,'upload' + evt.type,[evt]);
        if(Rsd.isDebug)
        {
            console.debug('上传['+evt.type+']'+ evt.currentTarget.responseURL,evt.type,evt);
        }
          
     },
    /**
    * 以json字符串形式发送，格式如：userid=admin&amp;pwd=654321， 需要服务端JSON.parse 还原JSON
    * @param {*} data 
    * @returns 
    */
   toJsonString:function toJsonString(data)
   {
       return Rsd.toString(data);
   },
   /**
     * 组织 form 属性 EncType（content-type）为 application/x-www-form-urlencoded 提交数据
     * 以formData 格式发送，将表单内的数据转换为键值对，如:name=jack&amp;age=18
     * @param {*} obj 
     * @param {*} pre 
     */
   toFormDataString:function toFormDataString(obj,pre) {

       
        var _pre = pre || '';
        if (obj == undefined || obj==null) {

            return '';
        }

        if (typeof obj == "string") {
            if(_pre)
            {
                return _pre +"=" + obj.replace(/([\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "";
            }
            else
            {
                return "" + obj.replace(/([\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "";
            }
           
        }

        if (obj instanceof Array) {
            var r = [];
            for (var i = 0; i &lt; obj.length; i++) {
                if (typeof (obj[i]) == 'function') {

                    continue;
                }
                if (typeof obj[i] == 'object') {
                    var _t = this.toFormDataString(obj[i], _pre + '[' + i + ']');
                    Array.prototype.push.apply(r, _t);
                }
                else {
                    r.push(this.toFormDataString(obj[i], _pre + '[' + i + ']'))
                }
               

                if (!_pre) {
                    r = r.join('&amp;');
                }
            }
            
            //非对象类型的数组 没有处理为:[1,24,5] 格式

            return r;
        }

        if (typeof obj == "object") {
            var r = [];

            for (var k in obj) {
                if (typeof (obj[k]) == 'function') {
                    continue;
                }
                if ( obj[k]==null || typeof  obj[k] == "string") {

                    if(_pre)
                    {
                        r.push(_pre + '[' + k + ']' + "=" +  this.toFormDataString(obj[k]));
                    }else
                    {
                        r.push(k + "=" +  this.toFormDataString(obj[k]));
                    }
                    continue;
                }
                 
                if(typeof obj[k] == 'object' )
                { 
                    if(_pre)
                    {
                        var _t = this.toFormDataString(obj[k],_pre + '[' + k + ']');
                        Array.prototype.push.apply(r , _t);
                    }else
                    {
                        var _t = this.toFormDataString(obj[k], k);
                        Array.prototype.push.apply(r , _t);
                    }
                }
                else
                {
                    if(_pre)
                    {
                        r.push(_pre + '[' + k + ']' + "=" +  this.toFormDataString(obj[k]));
                    }else
                    {
                        r.push(k + "=" +  this.toFormDataString(obj[k]));
                    }

                }

            }
            if(!_pre)
            {
                r = r.join('&amp;');
            }
            //console.log(r);
            return r;
        }

        return obj.toString().replace(/\"\:/g, '":""');
    },
    
   /**
    * 将json 数据转化为FormData
    * multipart/form-data
    * 既可以上传文件等二进制数据，也可以上传表单键值对，最后会转化为一条信息
    */
   toMultipartFormData:function toMultipartFormData(data)
   {
       var _data = data||{};
       var formData = new FormData();
       //debugger;
       for(var i in _data)
       {
           var _d = _data[i];
           if(Rsd.isArray(_d))
           {
              for(var j in _d)
              {
                  formData.append(i + '['+j+']' , _d[j]);console.log(i+ '['+j+']',_d[j]);
              }
              continue;
           }

           if(Rsd.isType(_d,File))
           {  
               formData.append(i,_d,_d.name);
               continue;
           }
           formData.append(i,_d);
       } 
       
       return formData;
   }

},function (type) {

    if (!Rsd.data.Ajax.prototype.hasOwnProperty("events")) {
        var _eventsGetter = function () {
            var _me = this;
            if (_me.__events == null) {
                _me.__events = Rsd.create('Rsd.common.EventList', {});
            }
            return  _me.__events;
        };

        this.defineProperty(type,"events", _eventsGetter, null,true);

    }
});

</code></pre>
        </article>
    </section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="global.html#Rsd">Rsd</a></li><li><a href="Rsd.common.html">common</a></li><li><a href="Rsd.container.html">container</a></li><li><a href="Rsd.control.html">control</a></li><li><a href="Rsd.data.html">data</a></li><li><a href="Rsd.template.html">template</a></li><li><a href="Rsd.widget.html">widget</a></li></ul><h3>Classes</h3><ul><li><a href="Redjs.html">Redjs</a></li><li><a href="Rsd.data.Ajax.html">Ajax</a></li><li><a href="Rsd.data.ModelSchema.html">ModelSchema</a></li><li><a href="Rsd.data.Service.html">Service</a></li><li><a href="window.Rsd.LogApi.html">LogApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#gbkToUTF8">gbkToUTF8</a></li><li><a href="global.html#mmToPx">mmToPx</a></li><li><a href="global.html#pxToMm">pxToMm</a></li><li><a href="global.html#unicodeToUTF8">unicodeToUTF8</a></li><li><a href="global.html#_btn_preview">_btn_preview</a></li><li><a href="global.html#_btn_save">_btn_save</a></li><li><a href="global.html#_imageItemDblClick">_imageItemDblClick</a></li><li><a href="global.html#accept">accept</a></li><li><a href="global.html#add">add</a></li><li><a href="global.html#addCls">addCls</a></li><li><a href="global.html#addControl">addControl</a></li><li><a href="global.html#addCookie">addCookie</a></li><li><a href="global.html#addItem">addItem</a></li><li><a href="global.html#addNode">addNode</a></li><li><a href="global.html#addObject">addObject</a></li><li><a href="global.html#addService">addService</a></li><li><a href="global.html#addTotalRow">addTotalRow</a></li><li><a href="global.html#addTreeNode">addTreeNode</a></li><li><a href="global.html#afterClose">afterClose</a></li><li><a href="global.html#afterShow">afterShow</a></li><li><a href="global.html#albumsItemDblClick">albumsItemDblClick</a></li><li><a href="global.html#albumsItemViewDetail">albumsItemViewDetail</a></li><li><a href="global.html#allFields">allFields</a></li><li><a href="global.html#alwaysWrap">alwaysWrap</a></li><li><a href="global.html#animate">animate</a></li><li><a href="global.html#appId">appId</a></li><li><a href="global.html#app_afterLayout">app_afterLayout</a></li><li><a href="global.html#apply">apply</a></li><li><a href="global.html#arrayConcat">arrayConcat</a></li><li><a href="global.html#authCode">authCode</a></li><li><a href="global.html#authorization">authorization</a></li><li><a href="global.html#autoCompleteHandler">autoCompleteHandler</a></li><li><a href="global.html#autoExpanded">autoExpanded</a></li><li><a href="global.html#autoLoad">autoLoad</a></li><li><a href="global.html#autoScrollIntoView">autoScrollIntoView</a></li><li><a href="global.html#backgroundImage">backgroundImage</a></li><li><a href="global.html#beforeClose">beforeClose</a></li><li><a href="global.html#beforeShow">beforeShow</a></li><li><a href="global.html#bgColors">bgColors</a></li><li><a href="global.html#bindEvent">bindEvent</a></li><li><a href="global.html#blankspan">blankspan</a></li><li><a href="global.html#block">block</a></li><li><a href="global.html#border">border</a></li><li><a href="global.html#btn_add">btn_add</a></li><li><a href="global.html#btn_add_albums">btn_add_albums</a></li><li><a href="global.html#btn_close">btn_close</a></li><li><a href="global.html#btn_new_image">btn_new_image</a></li><li><a href="global.html#btn_preview">btn_preview</a></li><li><a href="global.html#btn_publish">btn_publish</a></li><li><a href="global.html#btn_refesh_ds">btn_refesh_ds</a></li><li><a href="global.html#btn_refresh">btn_refresh</a></li><li><a href="global.html#btn_reset">btn_reset</a></li><li><a href="global.html#btn_save">btn_save</a></li><li><a href="global.html#btn_save_and_publish">btn_save_and_publish</a></li><li><a href="global.html#btn_share">btn_share</a></li><li><a href="global.html#btn_show_selector">btn_show_selector</a></li><li><a href="global.html#build">build</a></li><li><a href="global.html#buildColumns">buildColumns</a></li><li><a href="global.html#buildRows">buildRows</a></li><li><a href="global.html#buildTree">buildTree</a></li><li><a href="global.html#button">button</a></li><li><a href="global.html#callFunction">callFunction</a></li><li><a href="global.html#changeCls">changeCls</a></li><li><a href="global.html#checkRecord">checkRecord</a></li><li><a href="global.html#checkSessionServiceName">checkSessionServiceName</a></li><li><a href="global.html#checkToken">checkToken</a></li><li><a href="global.html#checkValue">checkValue</a></li><li><a href="global.html#checkbox">checkbox</a></li><li><a href="global.html#circle">circle</a></li><li><a href="global.html#clear">clear</a></li><li><a href="global.html#clearHotKey">clearHotKey</a></li><li><a href="global.html#clearLocal">clearLocal</a></li><li><a href="global.html#clearSelected">clearSelected</a></li><li><a href="global.html#clearSession">clearSession</a></li><li><a href="global.html#clone">clone</a></li><li><a href="global.html#close">close</a></li><li><a href="global.html#closeBtn">closeBtn</a></li><li><a href="global.html#closeDB">closeDB</a></li><li><a href="global.html#closeDropdownBox">closeDropdownBox</a></li><li><a href="global.html#closeLoading">closeLoading</a></li><li><a href="global.html#closeWaiting">closeWaiting</a></li><li><a href="global.html#codeMember">codeMember</a></li><li><a href="global.html#collapseAll">collapseAll</a></li><li><a href="global.html#colorMember">colorMember</a></li><li><a href="global.html#compile">compile</a></li><li><a href="global.html#compress">compress</a></li><li><a href="global.html#constructor">constructor</a></li><li><a href="global.html#contain">contain</a></li><li><a href="global.html#containCls">containCls</a></li><li><a href="global.html#copy">copy</a></li><li><a href="global.html#createInnerControl">createInnerControl</a></li><li><a href="global.html#crossDomain">crossDomain</a></li><li><a href="global.html#currentIndex">currentIndex</a></li><li><a href="global.html#data">data</a></li><li><a href="global.html#dataSource">dataSource</a></li><li><a href="global.html#dataStore">dataStore</a></li><li><a href="global.html#dataType">dataType</a></li><li><a href="global.html#daysStyle">daysStyle</a></li><li><a href="global.html#debug">debug</a></li><li><a href="global.html#decodeURI">decodeURI</a></li><li><a href="global.html#defineEnums">defineEnums</a></li><li><a href="global.html#defineRem">defineRem</a></li><li><a href="global.html#delay">delay</a></li><li><a href="global.html#deleteCookie">deleteCookie</a></li><li><a href="global.html#deleteDB">deleteDB</a></li><li><a href="global.html#deleteObject">deleteObject</a></li><li><a href="global.html#deleteRow">deleteRow</a></li><li><a href="global.html#deleteService">deleteService</a></li><li><a href="global.html#detectNavigator">detectNavigator</a></li><li><a href="global.html#detectOS">detectOS</a></li><li><a href="global.html#doLayout">doLayout</a></li><li><a href="global.html#doc">doc</a></li><li><a href="global.html#domTagName">domTagName</a></li><li><a href="global.html#download">download</a></li><li><a href="global.html#draggable">draggable</a></li><li><a href="global.html#drawCaption">drawCaption</a></li><li><a href="global.html#drawImage">drawImage</a></li><li><a href="global.html#drawList">drawList</a></li><li><a href="global.html#dsSchema">dsSchema</a></li><li><a href="global.html#dstype_change">dstype_change</a></li><li><a href="global.html#dynamic">dynamic</a></li><li><a href="global.html#edit">edit</a></li><li><a href="global.html#editRow">editRow</a></li><li><a href="global.html#empty">empty</a></li><li><a href="global.html#emptyImage">emptyImage</a></li><li><a href="global.html#encodeURI">encodeURI</a></li><li><a href="global.html#enumLabel">enumLabel</a></li><li><a href="global.html#enumText">enumText</a></li><li><a href="global.html#error">error</a></li><li><a href="global.html#exchange">exchange</a></li><li><a href="global.html#exeHotKeyFun">exeHotKeyFun</a></li><li><a href="global.html#expandAll">expandAll</a></li><li><a href="global.html#export">export</a></li><li><a href="global.html#fieldWidth">fieldWidth</a></li><li><a href="global.html#file">file</a></li><li><a href="global.html#fileDownloadServiceName">fileDownloadServiceName</a></li><li><a href="global.html#fileUploadServiceName">fileUploadServiceName</a></li><li><a href="global.html#findNode">findNode</a></li><li><a href="global.html#findObject">findObject</a></li><li><a href="global.html#findService">findService</a></li><li><a href="global.html#fire">fire</a></li><li><a href="global.html#fireResize">fireResize</a></li><li><a href="global.html#firstPage">firstPage</a></li><li><a href="global.html#fixed">fixed</a></li><li><a href="global.html#floating">floating</a></li><li><a href="global.html#formatApi">formatApi</a></li><li><a href="global.html#formatCurrency">formatCurrency</a></li><li><a href="global.html#formatCurrencyCN">formatCurrencyCN</a></li><li><a href="global.html#formatJson">formatJson</a></li><li><a href="global.html#formatLabels">formatLabels</a></li><li><a href="global.html#formatNumber">formatNumber</a></li><li><a href="global.html#formatString">formatString</a></li><li><a href="global.html#formatTimestamp">formatTimestamp</a></li><li><a href="global.html#from">from</a></li><li><a href="global.html#fullScreen">fullScreen</a></li><li><a href="global.html#funApplyByIOC">funApplyByIOC</a></li><li><a href="global.html#funBindByIOC">funBindByIOC</a></li><li><a href="global.html#get">get</a></li><li><a href="global.html#getApp">getApp</a></li><li><a href="global.html#getAppAuthorization">getAppAuthorization</a></li><li><a href="global.html#getAppConfig">getAppConfig</a></li><li><a href="global.html#getAppId">getAppId</a></li><li><a href="global.html#getAppToken">getAppToken</a></li><li><a href="global.html#getByteLength">getByteLength</a></li><li><a href="global.html#getCheckedNodes">getCheckedNodes</a></li><li><a href="global.html#getColumns">getColumns</a></li><li><a href="global.html#getControl">getControl</a></li><li><a href="global.html#getControlConfig">getControlConfig</a></li><li><a href="global.html#getCookie">getCookie</a></li><li><a href="global.html#getDPI">getDPI</a></li><li><a href="global.html#getData">getData</a></li><li><a href="global.html#getDocConfig">getDocConfig</a></li><li><a href="global.html#getDocument">getDocument</a></li><li><a href="global.html#getDom">getDom</a></li><li><a href="global.html#getElAttribute">getElAttribute</a></li><li><a href="global.html#getFieldValue">getFieldValue</a></li><li><a href="global.html#getFields">getFields</a></li><li><a href="global.html#getFile">getFile</a></li><li><a href="global.html#getFileName">getFileName</a></li><li><a href="global.html#getFormData">getFormData</a></li><li><a href="global.html#getFunctionName">getFunctionName</a></li><li><a href="global.html#getGlobalVariable">getGlobalVariable</a></li><li><a href="global.html#getHeight">getHeight</a></li><li><a href="global.html#getItem">getItem</a></li><li><a href="global.html#getItemById">getItemById</a></li><li><a href="global.html#getItemByName">getItemByName</a></li><li><a href="global.html#getItemByXtype">getItemByXtype</a></li><li><a href="global.html#getJsonSchema">getJsonSchema</a></li><li><a href="global.html#getKeyValue">getKeyValue</a></li><li><a href="global.html#getObjectByIndex">getObjectByIndex</a></li><li><a href="global.html#getObjectByKey">getObjectByKey</a></li><li><a href="global.html#getPaging">getPaging</a></li><li><a href="global.html#getPlugin">getPlugin</a></li><li><a href="global.html#getRecord">getRecord</a></li><li><a href="global.html#getRedjsHost">getRedjsHost</a></li><li><a href="global.html#getRedjsUrl">getRedjsUrl</a></li><li><a href="global.html#getRowData">getRowData</a></li><li><a href="global.html#getSchema">getSchema</a></li><li><a href="global.html#getSchemaList">getSchemaList</a></li><li><a href="global.html#getScrollHeight">getScrollHeight</a></li><li><a href="global.html#getSelectedNodes">getSelectedNodes</a></li><li><a href="global.html#getService">getService</a></li><li><a href="global.html#getStringWidth">getStringWidth</a></li><li><a href="global.html#getText">getText</a></li><li><a href="global.html#getTouched">getTouched</a></li><li><a href="global.html#getType">getType</a></li><li><a href="global.html#getUrlParam">getUrlParam</a></li><li><a href="global.html#getUserAgent">getUserAgent</a></li><li><a href="global.html#getValue">getValue</a></li><li><a href="global.html#getValueItem">getValueItem</a></li><li><a href="global.html#getView">getView</a></li><li><a href="global.html#getWhere">getWhere</a></li><li><a href="global.html#getWidth">getWidth</a></li><li><a href="global.html#getXhr">getXhr</a></li><li><a href="global.html#getZIndex">getZIndex</a></li><li><a href="global.html#globalVariables">globalVariables</a></li><li><a href="global.html#goTo">goTo</a></li><li><a href="global.html#gridColumns">gridColumns</a></li><li><a href="global.html#handleEvent">handleEvent</a></li><li><a href="global.html#handleUploadEvent">handleUploadEvent</a></li><li><a href="global.html#hasProperty">hasProperty</a></li><li><a href="global.html#hidden">hidden</a></li><li><a href="global.html#hide">hide</a></li><li><a href="global.html#httpGet">httpGet</a></li><li><a href="global.html#httpPost">httpPost</a></li><li><a href="global.html#httpRequest">httpRequest</a></li><li><a href="global.html#iframe_load">iframe_load</a></li><li><a href="global.html#imageDblClick">imageDblClick</a></li><li><a href="global.html#images">images</a></li><li><a href="global.html#indexEditServiceName">indexEditServiceName</a></li><li><a href="global.html#indexLoadServiceName">indexLoadServiceName</a></li><li><a href="global.html#info">info</a></li><li><a href="global.html#init">init</a></li><li><a href="global.html#initComponent">initComponent</a></li><li><a href="global.html#initComponentEx">initComponentEx</a></li><li><a href="global.html#initDropdownBox">initDropdownBox</a></li><li><a href="global.html#initImage">initImage</a></li><li><a href="global.html#insertItem">insertItem</a></li><li><a href="global.html#insertObject">insertObject</a></li><li><a href="global.html#insertService">insertService</a></li><li><a href="global.html#inset">inset</a></li><li><a href="global.html#isArray">isArray</a></li><li><a href="global.html#isBoolean">isBoolean</a></li><li><a href="global.html#isChrome">isChrome</a></li><li><a href="global.html#isCreated">isCreated</a></li><li><a href="global.html#isDate">isDate</a></li><li><a href="global.html#isDestroyed">isDestroyed</a></li><li><a href="global.html#isDisabled">isDisabled</a></li><li><a href="global.html#isEmpty">isEmpty</a></li><li><a href="global.html#isFunction">isFunction</a></li><li><a href="global.html#isHidden">isHidden</a></li><li><a href="global.html#isLoading">isLoading</a></li><li><a href="global.html#isMobile">isMobile</a></li><li><a href="global.html#isNaN">isNaN</a></li><li><a href="global.html#isNull">isNull</a></li><li><a href="global.html#isNullOrUndefined">isNullOrUndefined</a></li><li><a href="global.html#isNumber">isNumber</a></li><li><a href="global.html#isObject">isObject</a></li><li><a href="global.html#isReady">isReady</a></li><li><a href="global.html#isRendered">isRendered</a></li><li><a href="global.html#isString">isString</a></li><li><a href="global.html#isTrue">isTrue</a></li><li><a href="global.html#isType">isType</a></li><li><a href="global.html#isUndefined">isUndefined</a></li><li><a href="global.html#isView">isView</a></li><li><a href="global.html#isWeChat">isWeChat</a></li><li><a href="global.html#isWeChatApp">isWeChatApp</a></li><li><a href="global.html#itemCls">itemCls</a></li><li><a href="global.html#itemKeyMember">itemKeyMember</a></li><li><a href="global.html#itemLabelWidth">itemLabelWidth</a></li><li><a href="global.html#itemSelectedCls">itemSelectedCls</a></li><li><a href="global.html#itemXtype">itemXtype</a></li><li><a href="global.html#items">items</a></li><li><a href="global.html#jsonFormatter">jsonFormatter</a></li><li><a href="global.html#label">label</a></li><li><a href="global.html#lang">lang</a></li><li><a href="global.html#lastPage">lastPage</a></li><li><a href="global.html#layout">layout</a></li><li><a href="global.html#layoutAuto">layoutAuto</a></li><li><a href="global.html#layoutBorder">layoutBorder</a></li><li><a href="global.html#layoutContent">layoutContent</a></li><li><a href="global.html#layoutHbox">layoutHbox</a></li><li><a href="global.html#layoutItems">layoutItems</a></li><li><a href="global.html#layoutVbox">layoutVbox</a></li><li><a href="global.html#link">link</a></li><li><a href="global.html#listObject">listObject</a></li><li><a href="global.html#listObjects">listObjects</a></li><li><a href="global.html#listService">listService</a></li><li><a href="global.html#listeners">listeners</a></li><li><a href="global.html#load">load</a></li><li><a href="global.html#loadClass">loadClass</a></li><li><a href="global.html#loadCssFile">loadCssFile</a></li><li><a href="global.html#loadCtrlProperty">loadCtrlProperty</a></li><li><a href="global.html#loadData">loadData</a></li><li><a href="global.html#loadDocPages">loadDocPages</a></li><li><a href="global.html#loadFields">loadFields</a></li><li><a href="global.html#loadImage">loadImage</a></li><li><a href="global.html#loadIndex">loadIndex</a></li><li><a href="global.html#loadPlugin">loadPlugin</a></li><li><a href="global.html#loadScriptFile">loadScriptFile</a></li><li><a href="global.html#loadServiceApi">loadServiceApi</a></li><li><a href="global.html#loadServices">loadServices</a></li><li><a href="global.html#loadTemplateFile">loadTemplateFile</a></li><li><a href="global.html#mailTo">mailTo</a></li><li><a href="global.html#makeControl">makeControl</a></li><li><a href="global.html#makeObject">makeObject</a></li><li><a href="global.html#mappingUrl">mappingUrl</a></li><li><a href="global.html#maxLength">maxLength</a></li><li><a href="global.html#maxSize">maxSize</a></li><li><a href="global.html#md5">md5</a></li><li><a href="global.html#messageStyle">messageStyle</a></li><li><a href="global.html#metaInfo">metaInfo</a></li><li><a href="global.html#minSize">minSize</a></li><li><a href="global.html#model">model</a></li><li><a href="global.html#multiple">multiple</a></li><li><a href="global.html#name">name</a></li><li><a href="global.html#navigation">navigation</a></li><li><a href="global.html#newLine">newLine</a></li><li><a href="global.html#newRow">newRow</a></li><li><a href="global.html#next">next</a></li><li><a href="global.html#nextPage">nextPage</a></li><li><a href="global.html#nobr">nobr</a></li><li><a href="global.html#on">on</a></li><li><a href="global.html#onAfterInit">onAfterInit</a></li><li><a href="global.html#onAfterLayout">onAfterLayout</a></li><li><a href="global.html#onAfterRender">onAfterRender</a></li><li><a href="global.html#onAfterShow">onAfterShow</a></li><li><a href="global.html#onBeforeInit">onBeforeInit</a></li><li><a href="global.html#onBeforeLayout">onBeforeLayout</a></li><li><a href="global.html#onBeforeRender">onBeforeRender</a></li><li><a href="global.html#onBeforeShow">onBeforeShow</a></li><li><a href="global.html#onChanged">onChanged</a></li><li><a href="global.html#onPageSizeChanged">onPageSizeChanged</a></li><li><a href="global.html#on_checked">on_checked</a></li><li><a href="global.html#onchange">onchange</a></li><li><a href="global.html#ondelete">ondelete</a></li><li><a href="global.html#onload">onload</a></li><li><a href="global.html#onselect">onselect</a></li><li><a href="global.html#onview">onview</a></li><li><a href="global.html#openDB">openDB</a></li><li><a href="global.html#overflow">overflow</a></li><li><a href="global.html#pageIndexChanged">pageIndexChanged</a></li><li><a href="global.html#pageSizeList">pageSizeList</a></li><li><a href="global.html#page_type_changed">page_type_changed</a></li><li><a href="global.html#panelStyle">panelStyle</a></li><li><a href="global.html#patchButton">patchButton</a></li><li><a href="global.html#post">post</a></li><li><a href="global.html#postFileFromString">postFileFromString</a></li><li><a href="global.html#postFiles">postFiles</a></li><li><a href="global.html#pr_on_changed">pr_on_changed</a></li><li><a href="global.html#pr_rowdblclick">pr_rowdblclick</a></li><li><a href="global.html#previousPage">previousPage</a></li><li><a href="global.html#print">print</a></li><li><a href="global.html#printBorder">printBorder</a></li><li><a href="global.html#printCallStack">printCallStack</a></li><li><a href="global.html#proxy">proxy</a></li><li><a href="global.html#readFile">readFile</a></li><li><a href="global.html#readLocal">readLocal</a></li><li><a href="global.html#readOnly">readOnly</a></li><li><a href="global.html#readSession">readSession</a></li><li><a href="global.html#redirect">redirect</a></li><li><a href="global.html#refresh">refresh</a></li><li><a href="global.html#registerHotKey">registerHotKey</a></li><li><a href="global.html#remove">remove</a></li><li><a href="global.html#removeAll">removeAll</a></li><li><a href="global.html#removeCls">removeCls</a></li><li><a href="global.html#removeItem">removeItem</a></li><li><a href="global.html#removeLocal">removeLocal</a></li><li><a href="global.html#removeSession">removeSession</a></li><li><a href="global.html#renderTo">renderTo</a></li><li><a href="global.html#render_html">render_html</a></li><li><a href="global.html#requestService">requestService</a></li><li><a href="global.html#resetAjaxConfig">resetAjaxConfig</a></li><li><a href="global.html#response">response</a></li><li><a href="global.html#restart">restart</a></li><li><a href="global.html#rowclick">rowclick</a></li><li><a href="global.html#rowdblclick">rowdblclick</a></li><li><a href="global.html#rows">rows</a></li><li><a href="global.html#run">run</a></li><li><a href="global.html#saveAlbum">saveAlbum</a></li><li><a href="global.html#saveHandler">saveHandler</a></li><li><a href="global.html#scale">scale</a></li><li><a href="global.html#scrollCurrentIntoView">scrollCurrentIntoView</a></li><li><a href="global.html#scrollIntoView">scrollIntoView</a></li><li><a href="global.html#searchHandler">searchHandler</a></li><li><a href="global.html#select">select</a></li><li><a href="global.html#selectAll">selectAll</a></li><li><a href="global.html#selectColumn">selectColumn</a></li><li><a href="global.html#selectControl">selectControl</a></li><li><a href="global.html#selectNode">selectNode</a></li><li><a href="global.html#selectPage">selectPage</a></li><li><a href="global.html#selectRow">selectRow</a></li><li><a href="global.html#selected">selected</a></li><li><a href="global.html#selectedOnClick">selectedOnClick</a></li><li><a href="global.html#selectedOnDblClick">selectedOnDblClick</a></li><li><a href="global.html#selectorServices">selectorServices</a></li><li><a href="global.html#services">services</a></li><li><a href="global.html#setAppToken">setAppToken</a></li><li><a href="global.html#setControlProperty">setControlProperty</a></li><li><a href="global.html#setDisabled">setDisabled</a></li><li><a href="global.html#setDocumentIndex">setDocumentIndex</a></li><li><a href="global.html#setDocumentTitle">setDocumentTitle</a></li><li><a href="global.html#setDomToken">setDomToken</a></li><li><a href="global.html#setElAttribute">setElAttribute</a></li><li><a href="global.html#setElStyle">setElStyle</a></li><li><a href="global.html#setGlobalVariable">setGlobalVariable</a></li><li><a href="global.html#setHeaderVisible">setHeaderVisible</a></li><li><a href="global.html#setHref">setHref</a></li><li><a href="global.html#setNewButtons">setNewButtons</a></li><li><a href="global.html#setPageIndex">setPageIndex</a></li><li><a href="global.html#setPaging">setPaging</a></li><li><a href="global.html#setPosition">setPosition</a></li><li><a href="global.html#setSearchColumns">setSearchColumns</a></li><li><a href="global.html#setUrlParam">setUrlParam</a></li><li><a href="global.html#setValue">setValue</a></li><li><a href="global.html#set_data">set_data</a></li><li><a href="global.html#showAlbumsDetail">showAlbumsDetail</a></li><li><a href="global.html#showDialog">showDialog</a></li><li><a href="global.html#showDialogOnLeft">showDialogOnLeft</a></li><li><a href="global.html#showDialogOnRight">showDialogOnRight</a></li><li><a href="global.html#showDropdownBox">showDropdownBox</a></li><li><a href="global.html#showError">showError</a></li><li><a href="global.html#showIndex">showIndex</a></li><li><a href="global.html#showItem">showItem</a></li><li><a href="global.html#showLoading">showLoading</a></li><li><a href="global.html#showModalDialog">showModalDialog</a></li><li><a href="global.html#showModelView">showModelView</a></li><li><a href="global.html#showTip">showTip</a></li><li><a href="global.html#showWaiting">showWaiting</a></li><li><a href="global.html#size">size</a></li><li><a href="global.html#sleep">sleep</a></li><li><a href="global.html#sort">sort</a></li><li><a href="global.html#src">src</a></li><li><a href="global.html#start">start</a></li><li><a href="global.html#statechange">statechange</a></li><li><a href="global.html#stop">stop</a></li><li><a href="global.html#submit">submit</a></li><li><a href="global.html#tabIndex">tabIndex</a></li><li><a href="global.html#templates">templates</a></li><li><a href="global.html#testServerHost">testServerHost</a></li><li><a href="global.html#text">text</a></li><li><a href="global.html#textMember">textMember</a></li><li><a href="global.html#timeout">timeout</a></li><li><a href="global.html#timing">timing</a></li><li><a href="global.html#title">title</a></li><li><a href="global.html#title_format">title_format</a></li><li><a href="global.html#toFormDataString">toFormDataString</a></li><li><a href="global.html#toHtml">toHtml</a></li><li><a href="global.html#toJson">toJson</a></li><li><a href="global.html#toJsonString">toJsonString</a></li><li><a href="global.html#toMultipartFormData">toMultipartFormData</a></li><li><a href="global.html#toPxValue">toPxValue</a></li><li><a href="global.html#toString">toString</a></li><li><a href="global.html#toggle">toggle</a></li><li><a href="global.html#toggleCls">toggleCls</a></li><li><a href="global.html#token">token</a></li><li><a href="global.html#transform">transform</a></li><li><a href="global.html#tree_select_ctrl">tree_select_ctrl</a></li><li><a href="global.html#types">types</a></li><li><a href="global.html#unResize">unResize</a></li><li><a href="global.html#updateObject">updateObject</a></li><li><a href="global.html#updateRow">updateRow</a></li><li><a href="global.html#updateService">updateService</a></li><li><a href="global.html#upload">upload</a></li><li><a href="global.html#uploadComplete">uploadComplete</a></li><li><a href="global.html#uploadProgress">uploadProgress</a></li><li><a href="global.html#uploadStart">uploadStart</a></li><li><a href="global.html#valueMember">valueMember</a></li><li><a href="global.html#viewAllImages">viewAllImages</a></li><li><a href="global.html#viewHandler">viewHandler</a></li><li><a href="global.html#warn">warn</a></li><li><a href="global.html#writeLocal">writeLocal</a></li><li><a href="global.html#writeSession">writeSession</a></li><li><a href="global.html#zoomView">zoomView</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Wed May 10 2023 10:57:22 GMT+0800 (中国标准时间)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
